home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 1) (1997).iso / intros / 64k / revolt / sources / player / play.asm < prev    next >
Assembly Source File  |  1996-03-01  |  7KB  |  342 lines

  1.  
  2.         EXTRN ConfigInit      : FAR
  3.         EXTRN LoadModSb        : FAR
  4.         EXTRN PlayMusic        : FAR
  5.         EXTRN StopMusic        : FAR
  6.         EXTRN EndMusic        : FAR
  7.         EXTRN GetSongPosition    : FAR
  8.         EXTRN Configinit_g    : FAR
  9.         EXTRN LoadMOD_g        : FAR    
  10.         EXTRN Playmusic_g    : FAR
  11.         EXTRN Stopmusic_g    : FAR
  12.         EXTRN endmusic_g        : FAR
  13.  
  14. .MODEL SmalL
  15. .STACK 100h
  16. .386
  17.  
  18. ASSUME cs:WarLock
  19. WarLock SEGMENT USE16
  20.  
  21.         gus    db 0 ;gdy zero to soundblaster
  22.         dzidzi    db 1 ;z soundem
  23.  
  24. pamiæì        PROC
  25.         mov    ax,6200h
  26.         int    21h
  27.         mov    es,bx
  28.         mov    bx,90000/16
  29.         mov    ah,4ah
  30.         int    21h
  31.         ret
  32. pamiæì        ENDP
  33.  
  34.         modek    db    'revolt.$$$',0
  35.  
  36.         include    exec.inc
  37.         blur    db    'start.exe',0
  38.         adrrr    dd    0
  39.  
  40. Start:
  41.         mov    ax,3
  42.         int    10h
  43.  
  44.         call    wybierz
  45.  
  46.         xor    ax,ax
  47.         mov    es,ax
  48.         mov    al,dzidzi
  49.         mov    byte ptr es:[20+3],al
  50.  
  51.         in    al,21h
  52.         or    al,2
  53.         out    21h,al
  54.  
  55. ;call    tworz_mod
  56.         call    pamiæì
  57.  
  58.         cmp    dzidzi,0
  59.         je    e1c
  60. ;;;
  61.         call    tworz_mod
  62.         
  63.         cmp    gus,1
  64.         je    load_gus
  65.         mov    cx,0c242h
  66.         push    cs
  67.         pop    ds
  68.         lea    bx,param
  69.         call    configinit
  70.         push    cs
  71.         pop    ds
  72.         lea    dx,modek
  73.         call    loadmodsb
  74.         call    playmusic
  75.         call    kasuj_mod
  76.         jmp    e1c
  77.     load_gus:
  78.         mov    cx,0c242h
  79.         push    cs
  80.         pop    ds
  81.         lea    bx,param
  82.         call    configinit_g
  83.         push    cs
  84.         pop    ds
  85.         lea    dx,modek
  86.         call    loadmod_g
  87.         call    playmusic_g
  88.         call    kasuj_mod
  89.      e1c:
  90.         exec    blur
  91.  
  92. ;        in    al,60h
  93. ;        cmp    al,1
  94. ;        jne    e1c
  95.  
  96.         cmp    dzidzi,0
  97.         je    e2c
  98.     
  99.         cmp    gus,1
  100.         je    stopgus
  101.         call    StopMusic
  102.         call    EndMusic
  103.         jmp    e2c
  104.     stopgus:
  105.         call    stopmusic_g
  106.         call    endmusic_g
  107.      e2c:
  108.  
  109.         in    al,21h
  110.         and    al,255-2
  111.         out    21h,al
  112.  
  113.         mov    ax,cs
  114.         mov    ds,ax
  115.         lea    dx,fileid
  116.         mov    ah,9
  117.         int    21h
  118.  
  119.         mov     ax,4c00h
  120.         int     21h
  121.  
  122.  
  123.     wybierz:
  124.         mov    ax,SEG     nap1
  125.         mov    ds,ax
  126.         lea    dx,nap1
  127.         mov    ah,9
  128.         int    21h
  129.     @sound_machine:
  130.         mov    ah,0
  131.         int    16h
  132.         cmp    al,'1'
  133.         je    @sbn
  134.         cmp    al,'2'
  135.         je    @sbpro
  136.         cmp    al,'3'
  137.         je    @gus
  138.         cmp    al,'4'
  139.         je    @nsss
  140.         jmp    @sound_machine
  141.     @portt:    lea    dx,porst
  142.         mov    ah,9
  143.         int    21h
  144.     @porty: ;levis'y
  145.         mov    ah,0
  146.         int    16h
  147.         cmp    al,'1'
  148.         je    p210
  149.         cmp    al,'2'
  150.         je    p220
  151.         cmp    al,'3'
  152.         je    p230
  153.         cmp    al,'4'
  154.         je    p240
  155.         cmp    al,'5'
  156.         je    p250
  157.         cmp    al,'6'
  158.         je    p260
  159.         cmp    al,'7'
  160.         je    p270
  161.         cmp    al,'8'
  162.         je    p280
  163.         cmp    al,'9'
  164.         je    p290
  165.         jmp    @porty
  166.     @irqqq: lea     dx,irqa
  167.                 mov     ah,9
  168.                 int     21h
  169.         @sirq:  mov     ah,0
  170.                 int     16h
  171.                 cmp     al,'1'
  172.                 je      i1
  173.                 cmp     al,'3'
  174.                 je      i3
  175.                 cmp     al,'5'
  176.                 je      i5
  177.                 cmp     al,'7'
  178.                 je      i7
  179.                 jmp     @sirq
  180.         @dmaa:  lea     dx,dmaaa
  181.                 mov     ah,9
  182.                 int     21h
  183.         @dli:   mov     ah,0
  184.                 int     16h
  185.                 cmp     al,'1'
  186.                 je      d1
  187.                 cmp     al,'2'
  188.                 je      d2
  189.                 cmp     al,'3'
  190.                 je      d3
  191.                 cmp     al,'4'
  192.                 je      d4
  193.                 cmp     al,'5'
  194.                 je      d5
  195.                 cmp     al,'6'
  196.                 je      d6
  197.                 cmp     al,'7'
  198.                 je      d7
  199.                 cmp     al,'1'
  200.                 je      d1
  201.                 jmp     @dli
  202.         staraa:
  203.         ret
  204.         d1:     mov     word ptr cs:[si+2],1
  205.                 jmp     staraa
  206.         d2:     mov     word ptr cs:[si+2],2
  207.                 jmp     staraa
  208.         d3:     mov     word ptr cs:[si+2],3
  209.                 jmp     staraa
  210.         d4:     mov     word ptr cs:[si+2],4
  211.                 jmp     staraa
  212.         d5:     mov     word ptr cs:[si+2],5
  213.                 jmp     staraa
  214.         d6:     mov     word ptr cs:[si+2],6
  215.                 jmp     staraa
  216.         d7:     mov     word ptr cs:[si+2],7
  217.                 jmp     staraa
  218.         i1:     mov     word ptr cs:[si+3],1
  219.                 jmp     @dmaa
  220.         i3:     mov     word ptr cs:[si+3],3
  221.                 jmp     @dmaa
  222.         i5:     mov     word ptr cs:[si+3],5
  223.                 jmp     @dmaa
  224.         i7:     mov     word ptr cs:[si+3],7
  225.                 jmp     @dmaa
  226.         p290:   mov     word ptr cs:[si],290h
  227.                 jmp     @irqqq
  228.         p280:   mov     word ptr cs:[si],280h
  229.                 jmp     @irqqq
  230.         p270:   mov     word ptr cs:[si],270h
  231.                 jmp     @irqqq
  232.         p260:   mov     word ptr cs:[si],260h
  233.                 jmp     @irqqq
  234.         p250:   mov     word ptr cs:[si],250h
  235.                 jmp     @irqqq
  236.         p240:   mov     word ptr cs:[si],240h
  237.                 jmp     @irqqq
  238.         p230:   mov     word ptr cs:[si],230h
  239.                 jmp     @irqqq
  240.     p220:    mov    word ptr cs:[si],220h
  241.         jmp    @irqqq
  242.     p210:    mov    word ptr cs:[si],210h
  243.         jmp    @irqqq
  244.     @gus:
  245.         mov    gus,1
  246.         mov    dzidzi,1
  247.         lea    si,param
  248.         mov    byte ptr cs:[si+6],3
  249.         jmp    @portt
  250.     @sbpro:
  251.         mov    dzidzi,1
  252.         lea    si,param
  253.         mov    byte ptr cs:[si+6],1 ;sb-pro
  254.         jmp    @portt
  255.     @sbn:
  256.         mov    dzidzi,1
  257.         lea    si,param
  258.         mov    byte ptr cs:[si+6],2 ;sb-nor
  259.         jmp    @portt
  260.     @nsss:    mov    dzidzi,0
  261.         ret
  262.  
  263.  
  264.         nap1    db 'AMNESTY presents REVOLT... (our last prodd)',10,13
  265.             db 'NOLIMIT version with GUS support now...',10,13
  266.             db 'And some special thanx & greets go to:',10,13
  267.             db 'Nathan(i promised you,but my memory ehhhh...thanx for yar nice 3d-obiect)',10,13
  268.             db 'Yarpen(yeah our letter make me more happy...250kb letters LUREZ...)',10,13
  269.             db 'Gosia (i hope that you read it) - i like you very much too',10,13
  270.             db 'Ice (for a drink our tea:) without us...',10,13
  271.             db 'Ziel,Astra,Heya & other ADR dudes...(ABSENCE rulez)...',10,13
  272.             db 'Ozir & HPZ (what about Delirum? thanx for party-invitation)',10,13
  273.             db 'Caesar - ya guy...sent my kind of regards to yar sweatheart',10,13
  274.             db 'Siostra - elemeledudkipszczolkiimprezkietc ... ',10,13
  275.             db 'Camel - hey stary,do ya remeber me?  ODTF rulez...',10,13
  276.             db 'Szudi - thanx for yar PRIMAX ... ya''r coool man !',10,13
  277.             db 'Warlock - kup sobie GUSa! (Szudi)',10,13
  278.             db 'and OTHER...',10,13
  279.             db 10,13
  280.             db 'Select your sound-machine...',10,13
  281.             db '1.  Sound Blaster (MONO)',10,13
  282.             db '2.  Sound Blaster PRO (STEREO)',10,13
  283.             db '3.  Super-duper GUS ',10,13
  284.             db '4.  Quadro NO-SOUND ',10,13,10,13,'$'
  285.         porst    db 'Select port number...',10,13
  286.             db '1.  P210    2.  P220   ....   ?. P2?0',10,13,'$'
  287.                 irqa    db 10,13,'Select IRQ...',10,13
  288.                         db '1.IRQ1  3.IRQ3  5.IRQ5  7.IRQ7',10,13,'$'
  289.                 dmaaa   db 10,13,'And yar DMA...',10,13
  290.                         db '1. DMA1   2.DMA2  ...  ?.DMA?',10,13,'$'
  291.  
  292.         param    dw    220h             ;0
  293.             db    1            ;2
  294.             db    7            ;3
  295.             dw    22000            ;4
  296.             db    1 ;1sbpro 2sb        ;6
  297.             db    0            ;7
  298.             db    0
  299.             db    128
  300.             db    1
  301.             db    255
  302.             db    255
  303.             db    255
  304.  
  305.     mmm    db 'revolt.$$$',0
  306.  
  307.     kasuj_mod:
  308.         mov    ax,cs
  309.         mov    ds,ax
  310.         lea    dx,mmm
  311.         mov    ah,41h
  312.         int    21h
  313.         ret
  314.  
  315.     tworz_mod:
  316.         mov    ax,cs
  317.         mov    ds,ax
  318.         lea    dx,mmm
  319.         mov    cx,0
  320.         mov    ax,3c00h
  321.         mov    ah,3ch
  322.         int    21h
  323.         mov    bx,ax
  324.         mov    cx,37478
  325.         mov    ax,cs
  326.         mov    ds,ax
  327.         lea    dx,modey
  328.         mov    ax,4000h
  329.         int    21h
  330.         mov    ah,3eh
  331.         int    21h
  332.         ret
  333.  
  334.     fileid:
  335.     include    fileid
  336.  
  337.     modey:     include    mod.db
  338.  
  339. WarLock ENDS
  340.  
  341. END Start
  342.